Skip to content
This repository has been archived by the owner on Jun 19, 2022. It is now read-only.

Update yapf to 0.29.0 #898

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

pyup-bot
Copy link
Collaborator

This PR updates yapf from 0.22.0 to 0.29.0.

Changelog

0.29.0

Added
- Add the `--quiet` flag to suppress output. The return code is 1 if there are
changes, similarly to the `--diff` flag.
- Add the `indent_closing_brackets` option. This is the same as the
`dedent_closing_brackets` option except the brackets are indented the same
as the previous line.
Changed
- Collect a parameter list into a single object. This allows us to track how a
parameter list is formatted, keeping state along the way. This helps when
supporting Python 3 type annotations.
- Catch and report `UnicodeDecodeError` exceptions.
- Improved description of .yapfignore syntax.
Fixed
- Format subscript lists so that splits are essentially free after a comma.
- Don't add a space between a string and its subscript.
- Extend discovery of '.style.yapf' & 'setup.cfg' files to search the root
directory as well.
- Make sure we have parameters before we start calculating penalties for
splitting them.
- Indicate if a class/function is nested to ensure blank lines when needed.
- Fix extra indentation in async-for else statement.
- A parameter list with no elements shouldn't count as exceeding the column
limit.
- When splitting all comma separated values, don't treat the ending bracket as
special.
- The "no blank lines between nested classes or functions" knob should only
apply to the first nested class or function, not all of them.

0.28.0

Added
- New knob `SPLIT_ALL_TOP_LEVEL_COMMA_SEPARATED_VALUES` is a variation on
`SPLIT_ALL_COMMA_SEPARATED_VALUES` in which, if a subexpression with a comma
fits in its starting line, then the subexpression is not split (thus avoiding
unnecessary splits).
Changed
- Set `INDENT_DICTIONARY_VALUE` for Google style.
- Set `JOIN_MULTIPLE_LINES = False` for Google style.
Fixed
- `BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF=False` wasn't honored because the
number of newlines was erroneously calculated beforehand.
- Lambda expressions shouldn't have an increased split penalty applied to the
'lambda' keyword. This prevents them from being properly formatted when they're
arguments to functions.
- A comment with continuation markers (??) shouldn't mess with the lineno count.
- Only emit unformatted if the "disable long line" is at the end of the line.
Otherwise we could mess up formatting for containers which have them
interspersed with code.
- Fix a potential race condition by using the correct style for opening a file
which may not exist.

0.27.0

Added
- `SPLIT_BEFORE_ARITHMETIC_OPERATOR` splits before an arithmetic operator when
set. `SPLIT_PENALTY_ARITHMETIC_OPERATOR` allows you to set the split penalty
around arithmetic operators.
Changed
- Catch lib2to3's "TokenError" exception and output a nicer message.
Fixed
- Parse integer lists correctly, removing quotes if the list is within a
string.
- Adjust the penalties of bitwise operands for '&' and '^', similar to '|'.
- Avoid splitting after opening parens if SPLIT_BEFORE_FIRST_ARGUMENT is set
to False.
- Adjust default SPLIT_PENALTY_AFTER_OPENING_BRACKET.
- Re-enable removal of extra lines on the boundaries of formatted regions.
- Adjust list splitting to avoid splitting before a dictionary element, because
those are likely to be split anyway. If we do split, it leads to horrible
looking code.
- Dictionary arguments were broken in a recent version. It resulted in
unreadable formatting, where the remaining arguments were indented far more
than the dictionary. Fixed so that if the dictionary is the first argument in
a function call and doesn't fit on a single line, then it forces a split.
- Improve the connectiveness between items in a list. This prevents random
splitting when it's not 100% necessary.
- Don't remove a comment attached to a previous object just because it's part
of the "prefix" of a function/class node.

0.26.0

Added
- `ALLOW_SPLIT_BEFORE_DEFAULT_OR_NAMED_ASSIGNS` allows us to split before
default / named assignments.
- `ARITHMETIC_PRECEDENCE_INDICATION` removes spacing around binary operators
if they have higher precedence than other operators in the same expression.
Changed
- `SPACES_BEFORE_COMMENT` can now be assigned to a specific value (standard
behavior) or a list of column values. When assigned to a list, trailing
comments will be horizontally aligned to the first column value within
the list that is greater than the maximum line length in the block.
- Don't modify the vertical spacing of a line that has a comment "pylint:
disable=line-too-long". The line is expected to be too long.
- improved `CONTINUATION_ALIGN_STYLE` to accept quoted or underline-separated
option value for passing option with command line arguments.
Fixed
- When retrieving the opening bracket make sure that it's actually an opening
bracket.
- Don't completely deny a lambda formatting if it goes over the column limit.
Split only if absolutely necessary.
- Bump up penalty for splitting before a dot ('.').
- Ignore pseudo tokens when calculating split penalties.
- Increase the penalty for splitting before the first bit of a subscript.
- Improve splitting before dictionary values. Look more closely to see if the
dictionary entry is a container. If so, then it's probably split over
multiple lines with the opening bracket on the same line as the key.
Therefore, we shouldn't enforce a split because of that.
- Increase split penalty around exponent operator.
- Correct spacing when using binary operators on strings with the
`NO_SPACES_AROUND_SELECTED_BINARY_OPERATORS` option enabled.

0.25.0

Added
- Added `INDENT_BLANK_LINES` knob to select whether the blank lines are empty
or indented consistently with the current block.
- Support additional file exclude patterns in .yapfignore file.
Fixed
- Correctly determine if a scope is the last in line. It avoids a wrong
computation of the line end when determining if it must split after the
opening bracket with `DEDENT_CLOSING_BRACKETS` enabled.

0.24.0

Added
- Added 'SPLIT_BEFORE_DOT' knob to support "builder style" calls. The "builder
style" option didn't work as advertised. Lines would split after the dots,
not before them regardless of the penalties.
Changed
- Support Python 3.7 in the tests. The old "comp_for" and "comp_if" nodes are
now "old_comp_for" and "old_comp_if" in lib2to3.
Fixed
- Don't count inner function calls when marking arguments as named assignments.
- Make sure that tuples and the like are formatted nicely if they all can't fit
on a single line. This is similar to how we format function calls within an
argument list.
- Allow splitting in a subscript if it goes over the line limit.
- Increase the split penalty for an if-expression.
- Increase penalty for splitting in a subscript so that it's more likely to
split in a function call or other data literal.
- Cloning a pytree node doesn't transfer its a annotations. Make sure we do
that so that we don't lose information.
- Revert change that broke the "no_spaces_around_binary_operators" option.
- The "--style-help" option would output string lists and sets in Python types.
If the output was used as a style, then it wouldn't parse those values
correctly.

0.23.0

Added
- `DISABLE_ENDING_COMMA_HEURISTIC` is a new knob to disable the heuristic which
splits a list onto separate lines if the list is comma-terminated.
Fixed
- There's no need to increase N_TOKENS. In fact, it causes other things which
use lib2to3 to fail if called from YAPF.
- Change the exception message instead of creating a new one that's just a
clone.
- Make sure not to reformat when a line is disabled even if the --lines option
is specified.
- The "no spaces around operators" flag wasn't correctly converting strings to
sets. Changed the regexp to handle it better.
Links

@pyup-bot pyup-bot mentioned this pull request Nov 28, 2019
@coveralls
Copy link

Coverage Status

Coverage remained the same at 63.425% when pulling 5761196 on pyup-update-yapf-0.22.0-to-0.29.0 into 571d360 on master.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants